<template>
  <div class="goodesmodelbox">
    <el-dialog
      :showClose="false"
      :title="enterType === 1 ? '商品添加' : '修改商品'"
      :visible.sync="centerDialogVisible"
      height="100%"
      top
      width="100%"
    >
      <!-- {{ currentRow }} --- {{ enterType }} -->
      <el-tabs v-model="activeName" @tab-click="handleClick">
        <el-tab-pane label="基本信息" name="first">
          <GoodsInfoBase
            :addgoodsinfo="addgoodsinfo"
            :enterType="enterType"
            ref="goodsinfobase"
          ></GoodsInfoBase>
        </el-tab-pane>
        <el-tab-pane label="规格/库存" name="second">
          <GoodsSpecifications
            :addgoodsinfo="addgoodsinfo"
            :enterType="enterType"
            ref="goodsspecifications"
          ></GoodsSpecifications>
        </el-tab-pane>
        <el-tab-pane label="参数" name="third">
          <GoodsParameter
            :addgoodsinfo="addgoodsinfo"
            ref="goodsparameter"
          ></GoodsParameter>
        </el-tab-pane>
        <el-tab-pane label="详情" name="fourth">
          <GoodsDetails
            :addgoodsinfo="addgoodsinfo"
            ref="goodsdetail"
          ></GoodsDetails>
          <!-- <GoodsText></GoodsText> -->
        </el-tab-pane>
      </el-tabs>
      <span slot="footer" class="dialog-footer">
        <el-button @click="cancelgoodesmodel">取 消</el-button>
        <el-button type="primary" @click="savegoodesmodel">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import GoodsInfoBase from "./components/goods-info-base.vue";
import GoodsParameter from "./components/goods-parameter.vue";
import GoodsSpecifications from "./components/goods-specifications.vue";
import GoodsDetails from "./components/goods-details.vue";
import GoodsText from "./components/goods-text.vue";
import {
  addGoods,
  getCategoryList,
  EditGoods,
} from "@/api/mallApi/goodsOnsell/goodsOnsell";

export default {
  name: "GoodesModel",
  components: {
    GoodsInfoBase,
    GoodsParameter,
    GoodsSpecifications,
    GoodsDetails,
    GoodsText,
  },
  props: {
    centerDialogVisible: Boolean,
    currentRow: Object,
    enterType: Number,
    cancelSubmit: Number,
  },
  data() {
    return {
      activeName: "first",
      addgoodsinfo: {
        // this.addgoodsinfo.goods
        // 商品信息
        goods: {
          id: 0,
          mallCode: null, // 门店编码
          code: null, // 商品编码
          name: null, // 商品名称
          subtitle: null, // 商品副标题
          abbr: null, // 商品简称
          unit: null, // 商品单位
          sort: 0, // 序号
          keyword: null, // 关键字
          type: 0, // 商品类型rn 1：实体商品；rn 2：虚拟商品；rn 3：虚拟物品(卡密)
          parentCategoryId: 0, // 一级分类id
          categoryId: 0, // 商品分类ID
          attributes: "", // 1：推荐；2：新品；3：热卖；4：包邮；5：不参与会员折扣；
          priceCurrent: 0, // 商品当前的出售价格
          price: 0, // 商品原价
          priceCost: 0, // 商品成本价
          priceHandsel: 0, // 定金
          sales: 0, // 销量
          priceStamp: 0, // 包邮金额即满额包邮金额；空或0默认为不参与满额包邮
          postage: 0, // 邮费
          isInvoice: 0, // 是否支持开发票；0：否；1：是；默认为0
          tagsDefault: null, // 默认标签：1：正品保证；2：7天无理由退换货；3：保修；
          tageCustomIds: null, // 自定义标签ID；逗号隔开
          isRejected: 0, // 是否支持退换货：0：否；1：是；默认为1
          isHideSearching: 0, // 是否搜索隐藏 0：否；1：是；默认为0
          stock: 0, // 库存
          isShowStock: 0, // 是否显示库存：0：否；1：是；默认为0
          inventoryReductionType: 0, // 减库存的类型 1：下单减库存；2：付款减库存；3：永不减库存；默认为1；
          details: null, // 商品详情
          buyNotes: null,
          isUseSpecification: 0, // 是否启用规格参数 0：否；1：是；默认为0
          isAudit: 0, // 是否待审核；1：是；0：否；默认：0
          isAlwaysDelete: 0, // 是否彻底删除；0：否；1：是；默认为0
          status: 1, // 商品状态 1：下架；2：上架；默认为1；
          ptStatus: 0, // 商品状态 1：待审核2：审核通过3：驳回 4：违规下架
          checkReason: null, // 驳回理由
          shareMaterialDescribe: "", // 分享素材描述
          shareMaterialContent: "", // 分享素材内容
          goodsType: 0, // 商品类型：1：普通商品；2：团购商品；3：服务类商品
          thumb: null, // 商品缩略图
          viewNum: 0, // 浏览量
        },
        // 商品图片信息
        imgList: [],
        // 规格
        goodsSpecList: [],
        // 规格项属性值
        specItemAttrList: [],
        // 商品参数
        paramsList: [],
      },
    };
  },
  methods: {
    handleClick(tab, event) {}, //tab 选项卡信息函数
    cancelgoodesmodel() {
      this.$emit("cancelgoodesmodel", false);
      this.addgoodsinfo = {
        // 商品信息
        goods: {
          id: 0,
          mallCode: null, // 门店编码
          code: null, // 商品编码
          name: null, // 商品名称
          subtitle: null, // 商品副标题
          abbr: null, // 商品简称
          unit: null, // 商品单位
          sort: 0, // 序号
          keyword: null, // 关键字
          type: 0, // 商品类型rn 1：实体商品；rn 2：虚拟商品；rn 3：虚拟物品(卡密)
          parentCategoryId: 0, // 一级分类id
          categoryId: 0, // 商品分类ID
          attributes: "", // 1：推荐；2：新品；3：热卖；4：包邮；5：不参与会员折扣；
          priceCurrent: 0, // 商品当前的出售价格
          price: 0, // 商品原价
          priceCost: 0, // 商品成本价
          priceHandsel: 0, // 定金
          sales: 0, // 销量
          priceStamp: 0, // 包邮金额即满额包邮金额；空或0默认为不参与满额包邮
          postage: 0, // 邮费
          isInvoice: 0, // 是否支持开发票；0：否；1：是；默认为0
          tagsDefault: null, // 默认标签：1：正品保证；2：7天无理由退换货；3：保修；
          tageCustomIds: null, // 自定义标签ID；逗号隔开
          isRejected: 0, // 是否支持退换货：0：否；1：是；默认为1
          isHideSearching: 0, // 是否搜索隐藏 0：否；1：是；默认为0
          stock: 0, // 库存
          isShowStock: 0, // 是否显示库存：0：否；1：是；默认为0
          inventoryReductionType: 0, // 减库存的类型 1：下单减库存；2：付款减库存；3：永不减库存；默认为1；
          details: null, // 商品详情
          buyNotes: null,
          isUseSpecification: 0, // 是否启用规格参数 0：否；1：是；默认为0
          isAudit: 0, // 是否待审核；1：是；0：否；默认：0
          isDelete: 0, // 是否删除；1：是；0：否；默认：0
          isAlwaysDelete: 0, // 是否彻底删除；0：否；1：是；默认为0
          status: 1, // 商品状态 1：下架；2：上架；默认为1；
          ptStatus: 0, // 商品状态 1：待审核2：审核通过3：驳回 4：违规下架
          checkReason: null, // 驳回理由
          shareMaterialDescribe: "", // 分享素材描述
          shareMaterialContent: "", // 分享素材内容
          goodsType: 0, // 商品类型：1：普通商品；2：团购商品；3：服务类商品
          thumb: null, // 商品缩略图
          viewNum: 0, // 浏览量
        },
        // 商品图片信息
        imgList: [],
        // 规格
        goodsSpecList: [],
        // 规格项属性值
        specItemAttrList: [],
        // 商品参数
        paramsList: [
          {
            paramsName: null,
            paramsValue: null,
            key: Date.now(),
            goodsId: null,
          },
        ],
      };
    }, // 取消按钮 传值
    savegoodesmodel() {
      if (this.cancelSubmit === 101) {
        this.$message({
          message: "商品审核中禁止修改商品信息!!!",
          type: "warning",
        });
        this.cancelgoodesmodel();
        return;
      }
      if (
        this.addgoodsinfo.goods.code === null ||
        this.addgoodsinfo.goods.name === null ||
        this.addgoodsinfo.goods.unit === null ||
        this.addgoodsinfo.goods.keyword === null ||
        this.addgoodsinfo.goods.attributes.length === 0 ||
        this.addgoodsinfo.goods.subtitle === null
      ) {
        this.$message({
          message: "请补全带 * 信息",
          type: "warning",
        });
      } else if (
        this.addgoodsinfo.goods.priceCurrent <= 0 ||
        this.addgoodsinfo.goods.price <= 0 ||
        this.addgoodsinfo.goods.priceCost <= 0
      ) {
        this.$message({
          message: "请正确填写商品价格（不能小于等于0）",
          type: "warning",
        });
      } else if (
        this.addgoodsinfo.goods.parentCategoryId === 0 &&
        this.addgoodsinfo.goods.categoryId === 0
      ) {
        this.$message({
          message: "请选择商品分类",
          type: "warning",
        });
      } else {
        if (this.enterType === 1) {
          this.addgoodsinfo.goods.priceCurrent =
            this.addgoodsinfo.goods.priceCurrent * 100; //价格
          this.addgoodsinfo.goods.price = this.addgoodsinfo.goods.price * 100; //原价
          this.addgoodsinfo.goods.priceCost =
            this.addgoodsinfo.goods.priceCost * 100; //成本
          this.addgoodsinfo.goods.priceStamp =
            this.addgoodsinfo.goods.priceStamp * 100; //满额
          this.addgoodsinfo.goods.postage =
            this.addgoodsinfo.goods.postage * 100; //运费

          if (
            this.addgoodsinfo.specItemAttrList &&
            this.addgoodsinfo.specItemAttrList.length > 0
          ) {
            this.addgoodsinfo.specItemAttrList =
              this.addgoodsinfo.specItemAttrList.map((item) => {
                return {
                  ...item,
                  price: item.price * 100,
                  priceOriginal: item.priceOriginal * 100,
                  priceCost: item.priceCost * 100,
                };
              });
          }
          this.addgoodsinfo.goods.ptStatus = 0;
          addGoods(this.addgoodsinfo).then((res) => {
            if (res.code === "00000") {
              // this.attributes1 = []
              this.$refs.goodsinfobase.attributes1 = [];
              this.$refs.goodsinfobase.clearImages1();
              this.$refs.goodsinfobase.clearImages2();
              this.$message({
                message: "添加商品成功!",
                type: "success",
              });
              // (this.addgoodsinfo = {
              //   // this.addgoodsinfo.goods
              //   // 商品信息
              //   goods: {
              //     id: 0,
              //     mallCode: null, // 门店编码
              //     code: null, // 商品编码
              //     name: null, // 商品名称
              //     subtitle: null, // 商品副标题
              //     abbr: null, // 商品简称
              //     unit: null, // 商品单位
              //     sort: 0, // 序号
              //     keyword: null, // 关键字
              //     type: 0, // 商品类型rn 1：实体商品；rn 2：虚拟商品；rn 3：虚拟物品(卡密)
              //     parentCategoryId: 0, // 一级分类id
              //     categoryId: 0, // 商品分类ID
              //     attributes: "", // 1：推荐；2：新品；3：热卖；4：包邮；5：不参与会员折扣；
              //     priceCurrent: 0, // 商品当前的出售价格
              //     price: 0, // 商品原价
              //     priceCost: 0, // 商品成本价
              //     priceHandsel: 0, // 定金
              //     sales: 0, // 销量
              //     priceStamp: 0, // 包邮金额即满额包邮金额；空或0默认为不参与满额包邮
              //     postage: 0, // 邮费
              //     isInvoice: 0, // 是否支持开发票；0：否；1：是；默认为0
              //     tagsDefault: null, // 默认标签：1：正品保证；2：7天无理由退换货；3：保修；
              //     tageCustomIds: null, // 自定义标签ID；逗号隔开
              //     isRejected: 0, // 是否支持退换货：0：否；1：是；默认为1
              //     isHideSearching: 0, // 是否搜索隐藏 0：否；1：是；默认为0
              //     stock: 0, // 库存
              //     isShowStock: 0, // 是否显示库存：0：否；1：是；默认为0
              //     inventoryReductionType: 0, // 减库存的类型 1：下单减库存；2：付款减库存；3：永不减库存；默认为1；
              //     details: null, // 商品详情
              //     buyNotes: null,
              //     isUseSpecification: 0, // 是否启用规格参数 0：否；1：是；默认为0
              //     isAudit: 0, // 是否待审核；1：是；0：否；默认：0
              //     isAlwaysDelete: 0, // 是否彻底删除；0：否；1：是；默认为0
              //     status: 1, // 商品状态 1：下架；2：上架；默认为1；
              //     ptStatus: 0, // 商品状态 1：待审核2：审核通过3：驳回 4：违规下架
              //     checkReason: null, // 驳回理由
              //     shareMaterialDescribe: "", // 分享素材描述
              //     shareMaterialContent: "", // 分享素材内容
              //     goodsType: 0, // 商品类型：1：普通商品；2：团购商品；3：服务类商品
              //     thumb: null, // 商品缩略图
              //     viewNum: 0, // 浏览量
              //   },
              //   // 商品图片信息
              //   imgList: [
              //     {
              //       goodsId: 0, // 商品id
              //       mallCode: null, // 店铺编码
              //       type: null,
              //       img: null, // 图片
              //     },
              //   ],
              //   // 规格
              //   goodsSpecList: [],
              //   // 规格项属性值
              //   specItemAttrList: [],
              //   // 商品参数
              //   paramsList: [
              //     {
              //       paramsName: null,
              //       paramsValue: null,
              //       key: Date.now(),
              //       goodsId: null,
              //     },
              //   ],
              // }),
              this.cancelgoodesmodel();

              this.$emit("Refresh");
            }
          });
        } else if (this.enterType === 2) {
          // console.log("编辑提交按钮");
          this.addgoodsinfo.goods.priceCurrent =
            this.addgoodsinfo.goods.priceCurrent * 100; // 价格
          this.addgoodsinfo.goods.price = this.addgoodsinfo.goods.price * 100; // 原价
          this.addgoodsinfo.goods.priceCost =
            this.addgoodsinfo.goods.priceCost * 100; // 成本
          this.addgoodsinfo.goods.priceStamp =
            this.addgoodsinfo.goods.priceStamp * 100; // 满额
          this.addgoodsinfo.goods.postage =
            this.addgoodsinfo.goods.postage * 100; // 运费

          if (
            this.addgoodsinfo.specItemAttrList &&
            this.addgoodsinfo.specItemAttrList.length > 0
          ) {
            this.addgoodsinfo.specItemAttrList =
              this.addgoodsinfo.specItemAttrList.map((item) => {
                return {
                  ...item,
                  price: item.price * 100,
                  priceOriginal: item.priceOriginal * 100,
                  priceCost: item.priceCost * 100,
                };
              });
          }
          this.addgoodsinfo.goods.ptStatus = 0;
          delete this.addgoodsinfo.goods.isDelete;
          // console.log("测试编辑丢失和刷新4", this.addgoodsinfo.isDelete);
          // console.log("现在是编辑提交", this.addgoodsinfo);
          EditGoods(this.addgoodsinfo).then((res) => {
            if (res.code === "00000") {
              // this.attributes1 = []
              this.$refs.goodsinfobase.attributes1 = [];
              this.$refs.goodsinfobase.clearImages1();
              this.$refs.goodsinfobase.clearImages2();
              this.$message({
                message: "编辑商品成功!",
                type: "success",
              });
              this.cancelgoodesmodel();
              this.$emit("Refresh");
              // (this.addgoodsinfo = {
              //   // this.addgoodsinfo.goods
              //   // 商品信息
              //   goods: {
              //     id: 0,
              //     mallCode: null, // 门店编码
              //     code: null, // 商品编码
              //     name: null, // 商品名称
              //     subtitle: null, // 商品副标题
              //     abbr: null, // 商品简称
              //     unit: null, // 商品单位
              //     sort: 0, // 序号
              //     keyword: null, // 关键字
              //     type: 0, // 商品类型rn 1：实体商品；rn 2：虚拟商品；rn 3：虚拟物品(卡密)
              //     parentCategoryId: 0, // 一级分类id
              //     categoryId: 0, // 商品分类ID
              //     attributes: "", // 1：推荐；2：新品；3：热卖；4：包邮；5：不参与会员折扣；
              //     priceCurrent: 0, // 商品当前的出售价格
              //     price: 0, // 商品原价
              //     priceCost: 0, // 商品成本价
              //     priceHandsel: 0, // 定金
              //     sales: 0, // 销量
              //     priceStamp: 0, // 包邮金额即满额包邮金额；空或0默认为不参与满额包邮
              //     postage: 0, // 邮费
              //     isInvoice: 0, // 是否支持开发票；0：否；1：是；默认为0
              //     tagsDefault: null, // 默认标签：1：正品保证；2：7天无理由退换货；3：保修；
              //     tageCustomIds: null, // 自定义标签ID；逗号隔开
              //     isRejected: 0, // 是否支持退换货：0：否；1：是；默认为1
              //     isHideSearching: 0, // 是否搜索隐藏 0：否；1：是；默认为0
              //     stock: 0, // 库存
              //     isShowStock: 0, // 是否显示库存：0：否；1：是；默认为0
              //     inventoryReductionType: 0, // 减库存的类型 1：下单减库存；2：付款减库存；3：永不减库存；默认为1；
              //     details: null, // 商品详情
              //     buyNotes: null,
              //     isUseSpecification: 0, // 是否启用规格参数 0：否；1：是；默认为0
              //     isAudit: 0, // 是否待审核；1：是；0：否；默认：0
              //     isAlwaysDelete: 0, // 是否彻底删除；0：否；1：是；默认为0
              //     status: 1, // 商品状态 1：下架；2：上架；默认为1；
              //     ptStatus: 0, // 商品状态 1：待审核2：审核通过3：驳回 4：违规下架
              //     checkReason: null, // 驳回理由
              //     shareMaterialDescribe: "", // 分享素材描述
              //     shareMaterialContent: "", // 分享素材内容
              //     goodsType: 0, // 商品类型：1：普通商品；2：团购商品；3：服务类商品
              //     thumb: null, // 商品缩略图
              //     viewNum: 0, // 浏览量
              //   },
              // 商品图片信息
              // imgList: [
              //   {
              //     goodsId: 0, // 商品id
              //     mallCode: null, // 店铺编码
              //     type: null,
              //     img: null, // 图片
              //   },
              // ],
              // 规格
              // goodsSpecList: [],
              // // 规格项属性值
              // specItemAttrList: [],
              // // 商品参数
              // paramsList: [
              //   {
              //     paramsName: null,
              //     paramsValue: null,
              //     key: Date.now(),
              //     goodsId: null,
              //   },
              // ],
              // }),
            }
          });
        }
      } //保存 Goods 一些信息 接口函数
    },
  },
  mounted() {
    if (this.enterType === 2) {
      this.addgoodsinfo = this.currentRow;
      // console.log(
      //   "打开弹窗查看this.addgoodsinfo = this.currentRow",
      //   this.addgoodsinfo
      // );
    }
  },
  created() {
    if (this.enterType === 2) {
      this.addgoodsinfo = this.currentRow;
      // console.log(
      //   "打开弹窗查看this.addgoodsinfo = this.currentRow",
      //   this.addgoodsinfo
      // );
    }
  },
  watch: {
    centerDialogVisible(newVal) {
      // 监听 centerDialogVisible 的变化
      if (!newVal) {
        // 当 centerDialogVisible 变为 false 时触发事件
        this.$emit("close-dialog");
      }
    },
  },
};
</script>

<style lang="scss" scoped>
@import "./goodes-models.scss";
</style>
